DVR home network content shifting

ABSTRACT

Embodiments of the disclosed invention include a system and method for recording television content. For example, in one embodiment, a method performed by a digital video recorder is disclosed that includes communicating with a home gateway to determine whether a device connected to the home gateway has enough free storage space to store a television program in the event that the digital video recorder determines that an internal data storage unit associated with the digital video recorder has enough free storage space to store the television program. In one embodiment, the method routes the storage of a recording of the television program to the device via the home gateway in response to a determination that the device connected to the home gateway has enough free storage space on the data storage unit associated with the device to store the television content.

BACKGROUND OF THE INVENTION

The disclosed invention is related to the field of digital videorecorders (DVR). A digital video recorder is an electronic device usedto record television programming. A digital video recorder works similarto, and is about the same size as a VCR but instead of recording to avideo cassette tape, a DVR uses a hard disk drive for storing televisionprogramming data. The size/capacity of the hard disk drive determineshow much television programming can be recorded. Currently, if a DVRruns of out recording space while recording a program, the recordingwill stop. Some DVRs may be set to automatically delete previouslyrecorded programs from the hard disk drive of the DVR when additionalspace is needed.

SUMMARY

Embodiments of the disclosed invention include a system and method forrecording television content. For example, in one embodiment, a methodperformed by a digital video recorder is disclosed that includesreceiving a request from a user to record a television content,monitoring for the start time of the television content, determining anamount of storage space needed to store the television content, anddetermining, at a pre-specified time prior to the start time, whetherthere is enough free storage space on an internal data storage unit ofthe DVR to store the television content based on the amount of storageneeded to store the television content. In response to a determinationthat the internal data storage unit of the DVR does not contain enoughfree storage space to store the television content, the methodcommunicates with a home gateway to determine whether another deviceconnected to the home gateway has enough free storage space to store thetelevision content. The method routes the storage of a recording of thetelevision content to the data storage unit associated with the devicevia the home gateway in response to a determination that the deviceconnected to the home gateway has enough free storage space to store thetelevision content.

BRIEF DESCRIPTION OF THE DRAWINGS

Illustrative embodiments of the present invention are described indetail below with reference to the attached drawing figures, which areincorporated by reference herein and wherein:

FIG. 1 depicts an embodiment a network environment in which theillustrative embodiments may be implemented;

FIG. 2 depicts an embodiment of a digital video recorder for recordingtelevision content in accordance with the illustrative embodiments;

FIG. 3 depicts an embodiment of a user interface associated with adigital video recorder for recording television content in accordancewith the illustrative embodiments;

FIG. 4 depicts a flowchart illustrating an embodiment of a process forrecording television content in accordance with the illustrativeembodiments; and

FIG. 5 depicts a flowchart illustrating an embodiment of a process forplaying back television content in accordance with the illustrativeembodiments.

DETAILED DESCRIPTION

The disclosed embodiments and advantages thereof ate best understood byreferring to FIGS. 1-5 of the drawings, like numerals being used forlike and corresponding parts of the various drawings. Other features andadvantages of the disclosed embodiments will be or will become apparentto one of ordinary skill in the art upon examination of the followingfigures and detailed description. It is intended that all suchadditional features and advantages be included within the scope of thedisclosed embodiments, and protected by the accompanying drawings.Further, the illustrated figures are only exemplary and not intended toassert or imply any limitation with regard to the environment,architecture, or process in which different embodiments may beimplemented.

FIG. 1 depicts an embodiment a network environment 100 in which theillustrative embodiments may be implemented. In the depicted embodiment,a plurality of devices, such as, but not limited to, one or morecommunication devices and/or data processing systems, may communicateover a home gateway 160. Home gateway 160 is a device that connectsdevices within a home network 150 to each other and to an IP Network110. For example, in one embodiment, home network 150 may include, butis not limited to, a network area storage (NAS) device 162, acommunication device 164, a laptop 166, a desktop 168, and a digitalvideo recorder 170. In some embodiments, home gateway 160 may supportDynamic Host Configuration Protocol (DHCP). DHCP is a networkapplication protocol used by devices (DHCP clients) to obtainconfiguration information for operation in an Internet Protocol network,such as, home network 150. DHCP enables devices to be added to homenetwork 150 with little or no manual intervention. In other embodiments,a user may manually configure the IP addresses (static IP address) ofthe devices in home network 150.

In one embodiment, network area storage device 162 may be aself-contained computer connected to home network 150, with the solepurpose of supplying file-based data storage services to other deviceson home network 150. In some embodiments, network area storage device162 may be controlled and configured over home network 150 using a dataprocessing system, such as, but not limited to, desktop 168 or laptop166. In addition, network area storage device 162 may contain one ormore hard disk drives. Network area storage device 162 may utilize anyfile-based protocols, such as, but not limited to, Network File Storage(NFS) or Server Message Block/Common Internet File System (SMB/CIFS) forestablishing the underlying host-to-host connections via an InternetProtocol (IP) network.

In some embodiments, communication device 164 may be any type ofcommunication device capable of communicating with home gateway 160. Forexample, in one embodiment, communication device 164 may be a mobilephone utilizing IEEE 802.11 standards (also called Wireless LAN (WLAN)and Wi-Fi) for communicating with home gateway 160. In otherembodiments, communication device 164 may be a wired voice over IP(VOIP) phone connected to home gateway 160 for enabling communicationdevice 164 to place and receive calls over IP Network 110.

IP Network 110 may include one or more data networks, such as, but notlimited to, the Internet, for routing communications between one or morecommunication devices and/or data processing systems. The Internet is aglobal system of interconnected computer networks that interchange datausing the standardized Internet Protocol Suite (TCP/IP). Additionally,IP Network 110 may include other types of data networks, such as, butnot limited to, an intranet, a private local area network (LAN), a widearea network (WAN), and a wireless local area network (WLAN). Inaddition, in some embodiments, IP Network 110 may communicate with oneor more different networks, such as, but not limited to, a telephonenetwork 120 and a cable network 130 for providing services to devices inhome network 150.

In one embodiment, telephone network 120 may include a public switchedtelephone network (PSTN). The public switched telephone network is thestandard telephone network, consisting generally of copper wires forcarrying analog voice data, utilized by most homes. In some embodiments,telephone network 120 may also include digital telephone networks, suchas, but not limited to, an integrated services digital network (ISDN)and a fiber distributed data interface (FDDI) network. Additionally, insome embodiments, telephone network 120 may include one or more cellularnetworks, such as, but not limited to, a Global System for MobileCommunications (GSM) network, a Code-Division Multiple Access (CDMA)network, an Enhanced Data GSM Environment (EDGE) network, and a 3G/4Gnetwork.

In some embodiments, cable network 130 supplies television content to aplurality of subscribers. For example, in one embodiment, cable network130 may include a cable head end 140. Cable head end 140 is a facilitythat originates and communicates cable/satellite TV services to aplurality of subscribers, such as, but not limited to, digital videorecorder 170. In addition, in one embodiment, cable head end 140 mayalso receive upstream requests, such as, but not limited to, receiving avideo on demand request, from digital video recorder 170. In someembodiments, cable network 130 may include, but is not limited to, oneor more coaxial cable networks, fiber-optic networks, and/or satellitenetworks. Additionally, in some embodiments, cable network 130 may alsoinclude twisted pair networks for providing IPTV cable television-typeservices.

In accordance with the disclosed embodiments, digital video recorder 170is a device connected to home network 150 via home gateway 160. In oneembodiment, digital video recorder 170 may include a digital videorecorder control module 196 for enabling recording of television contentreceived from cable head end 140. Additionally, in some embodiments,digital video recorder 170 may be coupled to a television 180 fordisplaying the television content. As will be further described, in oneembodiment, digital video recorder 170 may include software, hardware,and/or a combination of both for enabling digital video recorder 170 torecord and store television content on one or more devices in homenetwork 150 via home gateway 160. For example, in accordance with oneembodiment, digital video recorder 170 may automatically record andstore a television program on network area storage device 162 in theevent digital video recorder 170 determines that digital video recorder170 does not contain enough free storage space on an internal hard driveassociated with digital video recorder 170 to completely store thetelevision program.

With reference now to FIG. 2, an embodiment of digital video recorder170 for recording television content is presented. The depictedembodiment is intended to illustrate some aspects of a digital videorecorder in accordance with the disclosed embodiments and is notintended to imply any architectural or design limitations. For instance,in some embodiments, digital video recorder 170 may include othercomponents not illustrated or discussed in the depicted embodiment forenabling recording of television content.

In the depicted embodiment, digital video recorder 170 includes a set ofinput/output components 180 for connecting digital video recorder 170 toone or more networks and/or devices. For example, in one embodiment, theset of input/output components 180 may include coaxial connectors forreceiving a plurality of television content signals and for outputtingtelevision content to television 180. In addition, in accordance withsome embodiments, the set of input/output components 180 includes abroadband IP network connector, such as, but not limited to, an Ethernetport, for connecting digital video recorder 170 to home gateway 160 andthe rest of the devices of home network 150 via home gateway 160.Alternatively, or in addition to, in some embodiments, the set ofinput/output components 180 may include a wireless transceiver. In oneembodiment, the wireless transceiver may support Wireless ApplicationProtocol (WAP) for communicating data wirelessly with one or moredevices, such as, but not limited to, home gateway 160.

In addition, in some embodiments, the set of input/output components 180may pass the inbound television signals to one or more tuner 172, suchas, but not limited to, an ATSC (Advanced Television Systems Committee)tuner. An ATSC tuner is a device that is used in the reception ofdigital television signals (DTV), including, but not limited to, highdefinition television (HDTV) signals, standard definition television(SDTV) signals, data broadcasting, multi-channel surround-sound audio,and satellite direct-to-home broadcasting. In one embodiment, tuner 172may decompress and demodulate the inbound television signals.Additionally, in some embodiments, tuner 172 may convert analogtelevision signals broadcasted over the air to a digital signal that canbe manipulated, such as, but not limited to, media reformatting, forviewing on a particular television set. For instance, a standardtelevision has an interlaced picture; where as a digital television hasa progressive scan picture. In other embodiments, tuner 172 may provideaudio/video synchronization for properly coordinating the audio signalwith the video signal.

In some embodiments, tuner 172 may pass the television signal to amotion picture experts group (MPEG) encoder 174, e.g., if the televisionsignal is broadcast in analog form, for encoding the television signalinto MPEG format. MPEG encoder 174 may support one or more standards,such as, but not limited to, MPEG-2. MPEG-2 is a standard for thegeneric coding of moving pictures and associated audio information.MPEG-2 is widely used for digital television signals that are broadcastby over-the-air, by cable, and by direct broadcast satellite TV systems.In addition, digital video recorder 170 may include one or more MPEGdecoder 178. MPEG decoder 178 decodes an MPEG formatted signal forgenerating a viewable signal and outputs the signal to a television set.

Digital video recorder 170 may include one or more processing unit 176.Processing unit 176 may comprise of one or more microprocessors forexecuting computer usable program code/instructions for providingtelevision programming and for recording television content. Forexample, in one embodiment, processing unit 176 may execute computerexecutable instructions 184 stored in memory component 182 forcommunicating with home gateway 160 for storing a recording of atelevision program on a network storage device in the event that digitalvideo recorder 170 does not contain enough internal free storage spacefor storing the recording of the television program.

For instance, digital video recorder 170 may include one or moteinternal data storage unit 190. Data storage unit 190 is a non-volatilememory component of digital video recorder 170, such as, but not limitedto, a hard disk drive. Non-volatile memory retains stored data whenpower is lost. In some embodiments, data storage unit 190 may be aremovable hard drive and/or may be replaceable with a larger hard drive.Data storage unit 190 may store a plurality of recorded events 192. Asreferenced herein a recorded event, is a television program/content thata user selects digital video recorder 170 to record.

For instance, in some embodiments, digital video recorder 170 includes aDVR controller 196 for enabling a user to select a program from anelectronic programming guide the user desires to be recorded. Forexample, in some embodiments, DVR controller 196 may enable a user torecord a single program, all instances of the program, or all newinstances of the program. In accordance with the disclosed embodiments,DVR controller 196 may determine, at a pre-specified time prior to astart time of the selected television program, whether there is enoughfree storage space on data storage unit 190 to store the televisionprogram based on the amount of storage space needed to store thetelevision program/content. In some embodiments, the pre-specified timeprior to the start time of the selected television program fordetermining whether there is enough free storage space on data storageunit 190 to store the television program may occur at the time the userselects the desired television program to be recorded. Alternatively, orin addition to, in some embodiments, the pre-specified time fordetermining whether there is enough free storage space on data storageunit 190 to store the television program may occur at a specified time(for example, a minute before the start time of the television program)immediately prior to the start time of the selected television program.

In accordance with one embodiment, in response to DVR controller 196determining that data storage unit 190 unit does not contain enough freestorage space to store the television content, DVR controller 196communicates with home gateway 160 to determine whether a deviceconnected to home gateway 160, e.g., network area storage device 162,laptop 166, and/or desktop 168, as enough free storage space on a datastorage unit associated with the device to store the television content.In response to determining a device connected to home gateway 160 hasenough free storage space to store the television content, DVRcontroller 196 routes the storage of a recording of the televisioncontent to the data storage unit associated with the home network 150device via home gateway 160. For instance, in one embodiment, DVRcontroller 196 sends the data packets comprising the television contentto an IP address of a home network 150 device via home gateway 160.

Additionally, in accordance with the disclosed embodiments, DVRcontroller 196 may retrieve the television content stored on a homenetwork 150 device in response to receiving a user request to playback arecorded television program. For example, in some embodiments, DVRcontroller 196 may store a data table comprising a list of recordedtelevision programs and the corresponding IP addresses of the networkdevice on which the recorded television program is stored. In oneembodiment, if enough free storage space is available, DVR controller196 may download the recorded television program from a home network 150device to data storage unit 190 for playing back the recorded televisionprogram. In other embodiments, DVR controller 196 may stream therecorded television program from a home network 150 device to digitalvideo recorder 170 for playing back the recorded television program on atelevision set.

In addition, in some embodiments, the stored television content mayinclude a digital rights management (DRM) encoding that restrictsaccess/playback of the stored television content to only digital videorecorder 170. In other embodiments, the digital rights managementencoding may enable any device associated with home network 150, suchas, but not limited to, communication device 164, laptop 166, and/ordesktop 168, to playback the stored television content. For example, inone embodiment, a user must register a media access control (MAC)address associated with each device within home network 150 with homegateway 160 and/or digital video recorder 170 for enabling the device toplayback the stored content.

FIG. 3 depicts an embodiment of a user interface 300 that may beassociated with digital video recorder 170 for enabling recording oftelevision content on a home network device in accordance with theillustrative embodiments. In the depicted embodiment, user interface 300includes a user selectable option for connecting digital video recorder170 to a home network, such as, but not limited to, home network 150. Inone embodiment, user interface 300 may include a user selectable button304 for dynamically establishing a connection with home gateway 160. Forinstance, in one embodiment, home gateway 160 may support Dynamic HostConfiguration Protocol for enabling digital video recorder 170 todynamically establish the IP addressing configuration between homegateway 160 and digital video recorder 170.

In addition, in some embodiments, user interface 300 may include a userselectable option 306 for activating a DVR home network content shiftingfeature for enabling digital video recorder 170 to shift storage of arecording of a television program onto a home network device in theevent that data storage unit 190 does not contain enough free storagespace to store the recording of the television program. In addition, insome embodiments, the DVR home network content shifting feature mayinclude enabling a home network device, such as, but not limited to,communication device 164, laptop 166, and/or desktop 168, to retrieve astored television program content from digital video recorder 170.Alternatively, or in addition to, in some embodiments, a home networkdevice, such as, but not limited to, communication device 164, laptop166, and/or desktop 168, may retrieve a stored television program oneanother or from network area storage device 162 for playback on theparticular home network device.

Additionally, in some embodiments, user interface 300 may include a userselectable option 308 for enabling a user to manually select aparticular home network device in which digital video recorder 170 wouldautomatically record a television program onto in the event that aninternal data storage unit associated with digital video recorder 170 isunable to store the television program, e.g., when data storage unit 190does not contain enough free storage space, or when data storage unit190 malfunctions or becomes corrupted. Alternatively, or in addition to,in some embodiments user interface 300 may include a user selectableautomatic selection option 310 for enabling digital video recorder 170to dynamically select a home network device capable of storing therecording of a television program. In addition, in some embodiments,user interface 300 may include a user selectable option 312 for aenabling a user to specify which device, e.g., digital video recorder170 or one of the home network devices, to delete content from, in theevent additional storage space is needed to record a television program.

With reference now to FIG. 4, a flowchart illustrating an embodiment ofa process 400 for recording television content, such as, but not limitedto, a television program, is presented in accordance with theillustrative embodiments. Process 400 may be executed by a digital videorecorder, such as, but not limited to, digital video recorder 170depicted in FIG. 2. Process 400 begins, at step 402, by receiving a DVRrecording request from a user to record a desired television program. Inthis embodiment, process 400, at step 404, monitors for the start timeof the desired television program. At step 406, the process determineswhether the recording event is about to begin, e.g., the start time ofthe recording event is about to occur in 2 minutes. In one embodiment,in response to a determination that the recording event is about tooccur, the process determines the amount of data storage space needed tostore a recording of the recording event at step 408. At step 410, theprocess determines whether digital video recorder 170 has enough freestorage space on an internal data storage unit to store in the recordingof the television program. In response to a determination that theinternal data storage unit associated with digital video recorder 170contains enough free storage space to store the recording of thetelevision program, the process, at step 412, records and stores therecording of the television program on the internal data storage unit ofdigital video recorder 170. However, if process 400 determines thedigital video recorder 170 does not contain enough internal free storagespace, the process, at step 414, pushes/routes, via a home gatewaydevice, the data associated with the recording of the television programto an external home network device having enough free storage space tostore the recording of the television program. At step 416, the processadds the recording event to a list of recorded events associated withdigital video recorder 170, with process 400 terminating thereafter.

In some embodiments, if the process determines that neither the internaldata storage unit associated with the digital video recorder nor anyhome network device associated with the digital video recorder containsenough free storage space to store a recording of the selected program,the process may notify the user that there is insufficient storage spaceto record the selected program. For example, in one embodiment, theprocess may present a pop-up message to the user, on a televisionconnected to the digital video recorder, notifying the user that thereis insufficient storage space to record the selected program.Alternatively, or in addition to, in some embodiments, the process maysend the user a SMS text message or an email message via home gateway160 to inform a user that no device connected to the home gateway hassufficient storage space to store the selected program.

Additionally, in some embodiments, process 400 may further include amethod for switching a selected recorded program from recording a highergrade signal (e.g., an HD signal) to recording a lower grade signal(e.g., standard definition) in response to a determination that there isnot enough free storage space to record the higher grade signal, butthat there is enough free storage space to record the lower gradesignal. For instance, in some embodiments, a service provider mayprovide a particular channel in both standard definition and highdefinition. In these embodiments, if the process determines that neitherthe internal data storage unit(s) associated with the digital videorecorder not any home network device associated with the digital videorecorder contains enough free storage space to store a recording of theselected program at the high definition, the process may determinewhether the selected program is available at a lower grade signal and,if available, whether there is enough free storage space on either thedigital video recorder or on a home network device to store a recordingof the selected program at the lower grade signal. In one embodiment, inresponse to determining that there is adequate space to store theselected program at the lower grade signal, the process automaticallyswitches over to recording the selected program at the lower gradesignal and storing the recording on the available device.

FIG. 5 depicts a flowchart illustrating an embodiment of a process forplaying back recorded television content in accordance with theillustrative embodiments. Process 500 may be executed by a digital videorecorder, such as, but not limited to, digital video recorder 170depicted in FIG. 2. Process 500 begins, at step 502, by receiving a DVRplayback request from a user to play back a recorded television program.At step 504, the process determines the storage location of therequested television program. For example, in one embodiment, theprocess may query a data table comprising a list of recorded events andtheir corresponding IP addresses associated with a device on which therecorded event is stored to determine the storage location of therequested television program. If at step 504, the process determinesthat the requested television program is stored on an internal datastorage unit of the digital video recorder, the process retrieves thestored program data from the internal data storage unit and plays backthe recording event at step 508, with process 500 terminatingthereafter.

However, if the process determines that the requested television programis stored on a home network device, the process, at step 506,retrieves/pulls the television content from the identified home networkdevice via a home gateway device. At step 508, plays back the recordingevent, with process 500 terminating thereafter.

Accordingly, the disclosed embodiments include a system and method forrecording television content over a home network. For example, in oneembodiment, a method performed by a digital video recorder is disclosedthat includes receiving a request from a user to record a televisioncontent, monitoring for the start time of the television content,determining an amount of storage space needed to store the televisioncontent, and determining, at a pre-specified time prior to the starttime, whether there is enough free storage space on the internal datastorage unit to store the television content based on the amount ofstorage needed to store the television content. In response to adetermination that the internal data storage unit does not containenough free storage space to store the television content, the methodcommunicates with a home gateway to determine whether a device connectedto the home gateway has enough free storage space on a data storage unitassociated with the device to store the television content. The methodroutes the storage of a recording of the television content to the datastorage unit associated with the device via the home gateway in responseto a determination that the device connected to the home gateway hasenough free storage space on the data storage unit associated with thedevice to store the television content.

Computer program code for carrying out operations of the presentinvention may be written in any combination of one or more programminglanguages, including an object oriented programming language, such asJava, Smalltalk, C++, or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

The disclosed embodiments are described above with reference toflowchart illustrations, sequence diagrams, and/or block diagrams. Eachblock of the flowchart illustrations and/or block diagrams, andcombinations of blocks in the flowchart illustrations and/or blockdiagrams, may be implemented by computer program instructions. Thesecomputer program instructions may be provided to a processor of ageneral purpose computer, special purpose computer, or otherprogrammable data processing apparatus to produce a machine, such thatthe instructions, which execute via the processor of the computer orother programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

These computer program instructions may also be stored in acomputer-readable medium that can direct a computer or otherprogrammable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablemedium produce an article of manufacture including instruction meanswhich implement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions which execute on the computer or other programmableapparatus provide processes for implementing the functions/actsspecified in the flowchart and/or block diagram block or blocks.

The terminology used herein is for describing particular embodimentsonly and is not intended to be limiting of the invention. As usedherein, the singular forms “a”, “an” and “the” are intended to includethe plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprise”and/or “comprising,” when used in this specification and/or the claims,specify the presence of stated features, integers, steps, operations,elements, and/or components, but do not preclude the presence oraddition of one or more other features, integers, steps, operations,elements, components, and/or groups thereof. The correspondingstructures, materials, acts, and equivalents of all means or step plusfunction elements in the claims below are intended to include anystructure, material, or act for performing the function in combinationwith other claimed elements as specifically claimed. The description ofthe present invention has been presented for purposes of illustrationand description, but is not intended to be exhaustive or limited to theinvention in the form disclosed. Many modifications and variations willbe apparent to those of ordinary skill in the art without departing fromthe scope and spirit of the invention. The embodiment was chosen anddescribed to explain the principles of the invention and the practicalapplication, and to enable others of ordinary skill in the art tounderstand the invention for various embodiments with variousmodifications as are suited to the particular use contemplated.

In addition, the flowchart and block diagrams in the figures illustratethe architecture, functionality, and operation of possibleimplementations of systems, methods and computer program productsaccording to various embodiments of the present invention. In thisregard, each block in the flowchart or block diagrams may represent amodule, segment, or portion of code, which may include one or moreexecutable instructions for implementing the specified logicalfunction(s). It should also be noted that, in some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts, or combinations of special purpose hardware andcomputer instructions.

The previous detailed description is of a small number of embodimentsfor implementing the invention and is not intended to be limiting inscope. One of skill in this art will immediately envisage the methodsand variations used to implement this invention in other areas thanthose described in detail. The following claims set forth a number ofthe embodiments of the invention disclosed with greater particularity.

We claim:
 1. A method performed by a digital video recorder forrecording a television content, the method comprising: receiving arequest from a user to record the television content; determining anamount of storage space needed to store the television content;determining whether there is enough free storage space on an internaldata storage unit of the digital video recorder to store the televisioncontent based on the amount of storage needed to store the televisioncontent; responsive to a determination that the internal data storageunit of the digital video recorder does not contain enough free storagespace to store the television content, determining whether a homenetwork device connected to a home gateway has enough free storage spaceon a data storage unit associated with the home network device to storethe television content; responsive to a determination that the homenetwork device connected to the home gateway has enough free storagespace on the data storage unit associated with the home network deviceto store the television content, routing storage of a recording of thetelevision content to the data storage unit associated with the homenetwork device via the home gateway, wherein the recording of thetelevision content includes digital rights management (DRM) encodingthat restricts access/playback of the recording of the televisioncontent, wherein the digital rights management (DRM) encoding includesan identifier associated with the home gateway, the DRM encodingenabling playback on any device communicatively coupled to the homegateway and restricts access or playback of the recording of thetelevision content to any device not communicatively coupled to the homegateway, wherein a media access control address associated with eachhome network device is registered with the home gateway for enablingeach of the home network device to playback stored content, and whereineach of the home network device is configured to retrieve stored contentfrom any home network device communicatively coupled to the homegateway; responsive to a determination that neither the internal datastorage unit of the digital video recorder nor a home network deviceconnected to the home gateway have enough free storage space on a datastorage unit associated with the home network device to store thetelevision content, determining based on a prespecified user-selectableoption whether to delete content from a home network device or from theinternal data storage unit of the digital video recorder for enablingthe storage of the recording of the television content; responsive to adetermination that the prespecified user-selectable option indicatesthat content is to be deleted from a home network device, deletingcontent from the data storage unit associated with the home networkdevice to create sufficient storage space for storing the recording ofthe television content and routing storage of the recording of thetelevision content to the data storage unit associated with the homenetwork device via the home gateway; and responsive to a determinationthat the prespecified user-selectable option indicates that content isto be deleted from the digital video recorder, deleting content from theinternal data storage unit of the digital video recorder to createsufficient storage space for storing the recording of the televisioncontent and storing the recording of the television content to theinternal data storage unit of the digital video recorder.
 2. The methodof claim 1, wherein the step of determining whether there is enough freestorage space on the internal data storage unit to store the televisioncontent based on the amount of storage needed to store the televisioncontent is performed at a time of setting the recording of thetelevision content.
 3. The method of claim 1, wherein the step ofdetermining whether there is enough free storage space on the internaldata storage unit to store the television content based on the amount ofstorage needed to store the television content is performed at aspecified time immediately prior to a start time of the televisioncontent.
 4. The method of claim 1, wherein the home gateway communicateswith a plurality of home network devices capable of storing thetelevision content.
 5. The method of claim 1, wherein the home networkdevice is pre-selected by a user.
 6. The method of claim 1, furthercomprising notifying the user in response to a determination that nohome network device connected to the home gateway has enough freestorage space to store the television content.
 7. The method of claim 6,wherein notification to the user includes presenting a pop message tothe user indicating that no home network device connected to the homegateway has enough free storage space to store the television content.8. The method of claim 6, wherein notification to the user includessending the user a SMS text message to inform the user that no homenetwork device connected to the home gateway has enough free storagespace to store the television content.
 9. A digital video recorderconnected to a home gateway for recording a television content, thedigital video recorder comprising: a set of input/output interfaces forreceiving the television content and for communicatively connecting thedigital video recorder to the home gateway; an internal data storageunit for storing a plurality of television content; a digital videorecorder controller module configured to: receive a request from a userto record the television content; determine an amount of storage spaceneeded to store the television content; determine whether there isenough free storage space on the internal data storage unit to store thetelevision content based on the amount of storage space needed to storethe television content; responsive to a determination that the internaldata storage unit does not contain enough free storage space to storethe television content, communicate with the home gateway to determinewhether a home network device connected to the home gateway has enoughfree storage space on a data storage unit associated with the homenetwork device to store the television content; route storage of arecording of the television content to the data storage unit associatedwith the home network device via the home gateway in response to adetermination that the home network device connected to the home gatewayhas enough free storage space on the data storage unit associated withthe home network device to store the television content, wherein therecording of the television content includes digital rights management(DRM) encoding that restricts access/playback of the recording of thetelevision content, wherein the digital rights management (DRM) encodingincludes an identifier associated with the home gateway, the DRMencoding enabling playback to on any device communicatively coupled tothe home gateway and restricts access or playback of the recording ofthe television content to any device not communicatively coupled to thehome gateway, wherein a media access control address associated witheach home network device is registered with the home gateway forenabling each of the home network device to playback stored content, andwherein each of the home network device is configured to retrieve storedcontent from any home network device communicatively coupled to the homegateway; responsive to a determination that neither the internal datastorage unit of the digital video recorder nor a home network deviceconnected to the home gateway have enough free storage space on a datastorage unit associated with the home network device to store thetelevision content, determine based on a prespecified user-selectableoption whether to delete content from a home network device or from theinternal data storage unit of the digital video recorder for enablingthe storage of the recording of the television content; responsive to adetermination that the prespecified user-selectable option indicatesthat content is to be deleted from a home network device, delete contentfrom the data storage unit associated with the home network device tocreate sufficient storage space for storing the recording of thetelevision content and route storage of the recording of the televisioncontent to the data storage unit associated with the home network devicevia the home gateway; and responsive to a determination that theprespecified user-selectable option indicates that content is to bedeleted from the digital video recorder, delete content from theinternal data storage unit of the digital video recorder to createsufficient storage space for storing the recording of the televisioncontent and store the recording of the television content to theinternal data storage unit of the digital video recorder.
 10. Thedigital video recorder of claim 9, further comprising one or more tunersfor receiving a high definition signal carrying the television contentand a standard definition signal carrying the television content; andwherein the digital video recorder controller module is furtherconfigured to: determine whether there is enough free storage space onat least one of the internal data storage unit of the digital videorecorder or the home network device connected to the home gateway tostore the television content at the standard definition signal; andresponsive to a determination that at least one of the internal datastorage unit of the digital video recorder or the home network deviceconnected to the home gateway contains enough free storage space tostore a recording of the television content at the standard definitionsignal, store the recording of the television content at the standarddefinition signal on the at least one of the internal data storage unitof the digital video recorder or the home network device connected tothe home gateway.
 11. The digital video recorder of claim 9, wherein thedigital video recorder controller module is further configured to:present a user interface for enabling a user to configure the digitalvideo recorder to communicate with the home gateway.
 12. The digitalvideo recorder of claim 9, wherein the digital video recorder controllermodule is further configured to: present a user interface for enabling auser to configure the digital video recorder to communicate with thehome gateway and to pre-select the home network device connected to thehome gateway from a plurality of devices for storing the recording ofthe television content to the home network device via the home gatewayin response to a determination that the internal data storage unit doesnot contain enough free storage space to store the television content.13. The digital video recorder of claim 9, wherein the digital videorecorder controller module is further configured to notify the user ofinsufficient recording space in response to a determination that no homenetwork device connected to the home gateway has enough free storagespace to store the television content.
 14. The digital video recorder ofclaim 9, wherein the digital video recorder controller module is furtherconfigured to notify the user of insufficient recording space via emailin response to a determination that no home network device connected tothe home gateway has enough free storage space to store the televisioncontent.
 15. The digital video recorder of claim 9, wherein the digitalvideo recorder controller module is further configured to notify theuser of insufficient recording space via an SMS text message in responseto a determination that no home network device connected to the homegateway has enough free storage space to store the television content.16. A computer program product comprising a computer usablenon-transitory medium having a computer readable program code embodiedtherein, said computer readable program code adapted to be executed by adigital video recorder to: receive a request from a user to recordtelevision content; determine an amount of storage space needed to storethe television content; determine whether there is enough free storagespace on an internal data storage unit to store the television contentbased on the amount of storage needed to store the television content;responsive to a determination that the internal data storage unit doesnot contain enough free storage space to store the television content,communicate with a home gateway to determine whether a home networkdevice connected to the home gateway has enough free storage space on adata storage unit associated with the home network device to store thetelevision content; responsive to a determination that the home networkdevice connected to the home gateway has enough free storage space onthe data storage unit associated with the home network device to storethe television content, route storage of a recording of the televisioncontent to the data storage unit associated with the home network devicevia the home gateway, wherein the recording of the television contentincludes digital rights management (DRM) encoding that restrictsaccess/playback of the recording of the television content, wherein thedigital rights management (DRM) encoding includes an identifierassociated with the home gateway, the DRM encoding enabling playback onany device communicatively coupled to the home gateway and restrictsaccess or playback of the recording of the television content to anydevice not communicatively coupled to the home gateway, wherein a mediaaccess control address associated with each home network device isregistered with the home gateway for enabling each of the home networkdevice to playback stored content, and wherein each of the home networkdevice is configured to retrieve stored content from any home networkdevice communicatively coupled to the home gateway; responsive to adetermination that neither the internal data storage unit of the digitalvideo recorder nor a home network device connected to the home gatewayhave enough free storage space on a data storage unit associated withthe home network device to store the television content, determine basedon a prespecified user-selectable option whether to delete content froma home network device or from the internal data storage unit of thedigital video recorder for enabling the storage of the recording of thetelevision content; responsive to a determination that the prespecifieduser-selectable option indicates that content is to be deleted from ahome network device, delete content from the data storage unitassociated with the home network device to create sufficient storagespace for storing the recording of the television content and routestorage of the recording of the television content to the data storageunit associated with the home network device via the home gateway; andresponsive to a determination that the prespecified user-selectableoption indicates that content is to be deleted from the digital videorecorder, delete content from the internal data storage unit of thedigital video recorder to create sufficient storage space for storingthe recording of the television content and store the recording of thetelevision content to the internal data storage unit of the digitalvideo recorder.
 17. The method of claim 1, further comprising: receivinga request to play back the recording of the television content stored inthe data storage unit associated with the home network device;responsive to receiving the request to play back the recording of thetelevision content stored in the data storage unit associated with thehome network device, determining whether the internal data storage unithas enough available storage space to store the recording of thetelevision content; determining a storage location of the recording ofthe television content by querying a data table, the data tablecomprising a list of recorded television programs and IP addresses ofhome network devices on which the recorded television programs arestored; responsive to a determination that the internal data storageunit has enough available storage space, downloading the recording ofthe television content from the storage location to the internal datastorage unit and playing back the television content from the internaldata storage unit; and responsive to a determination that the internaldata storage unit does not have enough available storage space,streaming playback of the recording of the television content from thestorage location.